Go. FakeDb. Эмуляция работы БД в тестах

На днях писал тесты для модуля, который взаимодействует с базой данных. Привязывать модуль тестов к настоящей базе данных не хотелось — это создаёт дополнительные требования к окружению, где будет выполняться тестирование. Создавать сразу экземпляры типа sql.Rows, с нужными табличками также не хотелось — для меня этот тип "чёрный ящик", и хотелось бы, чтобы так оно и оставалось. Поиском по теме ничего интересного также не нашлось.
Захотел поделиться с сообществом своей находкой: в основной поставке Go, есть готовый инструмент для таких нужд: называется FakeDb.

Что умеет данный инструмент?

По сути это простейшая, но полноценная как объект DB, база данных, умеющая создавать таблицы, наполнять их и делать из них простейшие выборки. Все созданные таблицы временные и существуют, пока существует экземпляр FakeDb. Кроме того, доступна эмуляция задержки при вызове команды и эмуляция исключения.

Команды FakeDb

Команды состоят из фраз, разделённых





Читать далее